package com.cisystem.system.domain;

import java.util.Date;

import com.cisystem.common.annotation.Excels;
import com.cisystem.common.core.domain.BaseEntity;
import com.cisystem.common.core.domain.entity.SysDept;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.cisystem.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * innovation对象 ci_innovation
 *
 * @author kelly
 * @date 2023-07-07
 */
public class Innovation extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * NO.
     */
    private Long id;

    /**
     * Date
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "Date", width = 30, dateFormat = "yyyy-MM-dd")
    private Date date;

    /**
     * Dept.
     */
    @Excel(name = "Dept.")
    private String deptId;

    /**
     * EmployeeID
     */
    @Excel(name = "EmployeeID")
    private String employeeId;

    /**
     * Name
     */
    @Excel(name = "Name")
    private String employeeName;

    /**
     * Title
     */
    @Excel(name = "Title")
    private String title;

    /**
     * Result
     */
    @Excel(name = "Result")
    private String result;

    /**
     * DueDate
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "DueDate", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueDate;

    /**
     * ClosingDate
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "ClosingDate", width = 30, dateFormat = "yyyy-MM-dd")
    private Date closingDate;

    /**
     * Status
     */
    @Excel(name = "Status")
    private String status;

    /**
     * Attachement
     */
    @Excel(name = "Attachment",defaultValue = "No File")
    private String attachment;

    /** 部门对象 */
    @Excels({
            @Excel(name = "部门名称", targetAttr = "deptName", type = Excel.Type.EXPORT),
            @Excel(name = "部门负责人", targetAttr = "leader", type = Excel.Type.EXPORT)
    })
    private SysDept dept;

    /** 备注 */
    @Excel(name = "Remark")
    private String remark;
    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setDate(Date date) {
        this.date = date;
    }

    public Date getDate() {
        return date;
    }

    public String getDeptId() {
        return deptId;
    }

    public void setDeptId(String deptId) {
        this.deptId = deptId;
    }

    public void setEmployeeId(String employeeId) {
        this.employeeId = employeeId;
    }

    public String getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public String getResult() {
        return result;
    }

    public void setDueDate(Date dueDate) {
        this.dueDate = dueDate;
    }

    public Date getDueDate() {
        return dueDate;
    }

    public void setClosingDate(Date closingDate) {
        this.closingDate = closingDate;
    }

    public Date getClosingDate() {
        return closingDate;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setAttachment(String attachment) {
        this.attachment = attachment;
    }

    public String getAttachment() {
        return attachment;
    }

    public SysDept getDept() {
        return dept;
    }

    public void setDept(SysDept dept) {
        this.dept = dept;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("date", getDate())
                .append("deptId", getDeptId())
                .append("employeeId", getEmployeeId())
                .append("employeeName", getEmployeeName())
                .append("title", getTitle())
                .append("result", getResult())
                .append("dueDate", getDueDate())
                .append("closingDate", getClosingDate())
                .append("status", getStatus())
                .append("remark", getRemark())
                .append("attachment", getAttachment())
                .append("SysDept",getDate())
                .toString();
    }
}
